Touchscreen panels are typically incorporated in various electronic devices to detect a user input (for example, a user touch or hover) and to display content. The touchscreen panels function to both display content through a display panel and detect the user touch/hover through a capacitive sensing panel. The capacitive sensing panel is typically mounted on top of the display panel. The display panel may utilize any of a number of display technologies including LED, LCD, OLED, etc. The capacitive sensing panel includes multiple layers of capacitive sensing circuitry arranged in a pattern. For example, as shown in FIG. 1, a diamond-shaped pattern is one well known sensor pattern wherein rows 10 of interconnected diamond-shaped structures 12 are interleaved with columns 14 of interconnected diamond-shaped structures 16. A small portion of such a capacitive sensing panel with a 3×3 array arrangement is shown in FIG. 1. A first set of lines 20 are connected to the rows and a second set of lines 22 are connected to the columns. The lines 20 and 22 are coupled to a touch screen controller (TSC) circuit 26 that includes both drive circuitry and sense circuitry. The drive circuitry is used to apply a signal to individual ones or groups of lines 20 and 22 and the sense circuit is used to sense a signal at individual ones or groups of lines 20 and 22.
It is known in the art to operate the capacitive sensing panel in at least two distinct modes.
In a first mode, referred to herein as a self capacitance sensing mode, the TSC circuit 26 operates to sense the self capacitance between any given row 10 or column 14 and a panel reference. By sensing a change in self-capacitance for a given row 10 or column 14, the TSC circuit 26 can detect a user touch or hover at or near that given row or column.
In a second mode, referred to herein as a mutual capacitance sensing mode, the TSC circuit 26 operates to sense the mutual capacitance at an intersection point between each row 10 and column 12. By sensing a change in mutual capacitance at a given intersection point between a row and column, the TSC circuit 26 can detect a user touch or hover at or near that given intersection point.
The technique for processing the collected capacitance data to determine touch/hover location typically uses the steps of: a) filtering the collected capacitance data using a fixed threshold; b) defining an island which includes only the capacitance data which exceeds the fixed threshold; and c) calculating a centroid of the defined island which provides coordinates of the detected touch/hover.
An example of the implementation of this process for a collected frame of mutual capacitance data is shown in FIGS. 2A-2D. To collect this mutual capacitance data, the TSC circuit 26 uses the drive circuitry to sequentially apply an AC signal to each line 20 for the rows 10, and uses the sense circuitry coupled to each line 22 to sense mutual capacitance at intersection points between rows 10 and columns 12. One complete scan of the rows and columns produces a frame of mutual capacitance data which represents the sensed capacitance at each intersection point between a row 10 and column 12. In the example of FIG. 2A, only a subset of the mutual sensing capacitance data is shown for rows 5-13 and columns 21-30 of the capacitive sensing panel (it being understood that the capacitive sensing panel may include many tens or even hundreds of rows and columns). The next step in the process is filtering the mutual capacitance data using a fixed filter threshold. In this case, a filter threshold of 55, for example, is used and all mutual capacitance data in the frame having a value below the threshold is set to 0 as shown in FIG. 2B. The remaining mutual capacitance data after filtering defines a data island having a boundary 30 as shown in FIG. 2C. Next, the centroid X of the data island is calculated to generate the coordinates of the detected touch/hover as shown in FIG. 2D. The coordinates of the centroid X in this example are Psffg=(25.6, 9.13).
The mathematical process used for defining the data island and calculating its centroid is well known to those skilled in the art.
It is important to note that the mutual capacitance data for the example of FIGS. 2A-2D concerns just a single touch of the panel. The reference above to “sffg” means “single finger floating ground” which simply indicates that the calculated touch centroid P relates to a single (one) finger touch. In the floating ground condition, however, the mutual sensing capacitance data will be distorted by crosstalk in situations where multiple simultaneous touches of the panel occur. This is illustrated in the example of FIGS. 3A-3D. Assume for this example that the same touch as produced the capacitance data of FIG. 2A is made along with a second touch on the panel at a location some distance away (not explicitly shown). Again, the TSC circuit 26 collects the mutual capacitance data. One complete scan of the rows and columns produces a frame of mutual capacitance data which represents the sensed mutual capacitance at each intersection point between a row 10 and column 12. Again, in the example of FIG. 3A, only a subset of the mutual sensing capacitance data is shown for rows 5-13 and columns 21-30 of the capacitive sensing panel which may include many rows and columns. It will be noted that even though the touch is at the same location the values of the mutual capacitance data of FIG. 3A differ from values of the mutual capacitance data of FIG. 2A due to the crosstalk introduced by the presence of the second touch (located some distance away; not explicitly shown). The next step in the process is filtering the capacitance data using a fixed threshold. In this case, the same filter threshold of 55, for example, is used and all mutual capacitance data in the frame having a value below the threshold is set to 0 as shown in FIG. 3B. The remaining mutual capacitance data after filtering defines a data island having a boundary 30 as shown in FIG. 3C. Next, the centroid X of the data island is calculated to generate the coordinates of the detected touch/hover as shown in FIG. 3D. The coordinates of the centroid X in this example are Pdffg=(25.7, 8.75). The reference to “dffg” means “double finger floating ground” which simply indicates that the calculated touch centroid P relates to a double (two) finger touch.
The calculated coordinates for the centroid Pdffg=(25.7, 8.75) in the double finger scenario clearly differ from the calculated coordinates for the centroid Psffg=(25.6, 9.13) in the single finger scenario. It is thus clear that the crosstalk distortion of the mutual sensing capacitance data produces an error in the calculated coordinates for the touch. There is a need in the art to address this issue.